From 644d522d19f91ff52a39a1477f3aa9c0dd07fe4c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 5 Jul 2020 13:51:42 -0400 Subject: [PATCH] filefilter: Drop custom filters These don't work with native file choosers. --- docs/reference/gtk/gtk4-sections.txt | 2 - gtk/gtkfilefilter.c | 61 +--------------------------- gtk/gtkfilefilter.h | 19 --------- tests/testfilechooser.c | 23 ----------- 4 files changed, 1 insertion(+), 104 deletions(-) diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index cb914a7703..55d474f5c8 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -1414,14 +1414,12 @@ GtkFileChooserButtonPrivate gtkfilefilter GtkFileFilter GtkFileFilterFlags -GtkFileFilterFunc gtk_file_filter_new gtk_file_filter_set_name gtk_file_filter_get_name gtk_file_filter_add_mime_type gtk_file_filter_add_pattern gtk_file_filter_add_pixbuf_formats -gtk_file_filter_add_custom gtk_file_filter_get_needed gtk_file_filter_filter diff --git a/gtk/gtkfilefilter.c b/gtk/gtkfilefilter.c index e0f112be39..65b10298e6 100644 --- a/gtk/gtkfilefilter.c +++ b/gtk/gtkfilefilter.c @@ -85,8 +85,7 @@ typedef struct _FilterRule FilterRule; typedef enum { FILTER_RULE_PATTERN, FILTER_RULE_MIME_TYPE, - FILTER_RULE_PIXBUF_FORMATS, - FILTER_RULE_CUSTOM + FILTER_RULE_PIXBUF_FORMATS } FilterRuleType; struct _GtkFileFilterClass @@ -113,11 +112,6 @@ struct _FilterRule gchar *pattern; gchar *mime_type; GSList *pixbuf_formats; - struct { - GtkFileFilterFunc func; - gpointer data; - GDestroyNotify notify; - } custom; } u; }; @@ -205,10 +199,6 @@ filter_rule_free (FilterRule *rule) case FILTER_RULE_PATTERN: g_free (rule->u.pattern); break; - case FILTER_RULE_CUSTOM: - if (rule->u.custom.notify) - rule->u.custom.notify (rule->u.custom.data); - break; case FILTER_RULE_PIXBUF_FORMATS: g_slist_free (rule->u.pixbuf_formats); break; @@ -580,45 +570,6 @@ gtk_file_filter_add_pixbuf_formats (GtkFileFilter *filter) file_filter_add_rule (filter, rule); } - -/** - * gtk_file_filter_add_custom: - * @filter: a #GtkFileFilter - * @needed: bitfield of flags indicating the information that the custom - * filter function needs. - * @func: callback function; if the function returns %TRUE, then - * the file will be displayed. - * @data: data to pass to @func - * @notify: function to call to free @data when it is no longer needed. - * - * Adds rule to a filter that allows files based on a custom callback - * function. The bitfield @needed which is passed in provides information - * about what sorts of information that the filter function needs; - * this allows GTK+ to avoid retrieving expensive information when - * it isn’t needed by the filter. - **/ -void -gtk_file_filter_add_custom (GtkFileFilter *filter, - GtkFileFilterFlags needed, - GtkFileFilterFunc func, - gpointer data, - GDestroyNotify notify) -{ - FilterRule *rule; - - g_return_if_fail (GTK_IS_FILE_FILTER (filter)); - g_return_if_fail (func != NULL); - - rule = g_slice_new (FilterRule); - rule->type = FILTER_RULE_CUSTOM; - rule->needed = needed; - rule->u.custom.func = func; - rule->u.custom.data = data; - rule->u.custom.notify = notify; - - file_filter_add_rule (filter, rule); -} - /** * gtk_file_filter_get_needed: * @filter: a #GtkFileFilter @@ -654,10 +605,6 @@ NSArray * _gtk_file_filter_get_as_pattern_nsstrings (GtkFileFilter *filter) switch (rule->type) { - case FILTER_RULE_CUSTOM: - [array release]; - return NULL; - break; case FILTER_RULE_MIME_TYPE: { // convert mime-types to UTI @@ -731,7 +678,6 @@ _gtk_file_filter_get_as_patterns (GtkFileFilter *filter) switch (rule->type) { - case FILTER_RULE_CUSTOM: case FILTER_RULE_MIME_TYPE: g_ptr_array_free (array, TRUE); return NULL; @@ -853,10 +799,6 @@ gtk_file_filter_filter (GtkFileFilter *filter, } } break; - case FILTER_RULE_CUSTOM: - if (rule->u.custom.func (info, rule->u.custom.data)) - return TRUE; - break; default: break; @@ -910,7 +852,6 @@ gtk_file_filter_to_gvariant (GtkFileFilter *filter) } } break; - case FILTER_RULE_CUSTOM: default: break; } diff --git a/gtk/gtkfilefilter.h b/gtk/gtkfilefilter.h index 0c968e111b..ae75e9b488 100644 --- a/gtk/gtkfilefilter.h +++ b/gtk/gtkfilefilter.h @@ -52,19 +52,6 @@ typedef enum { GTK_FILE_FILTER_MIME_TYPE = 1 << 3 } GtkFileFilterFlags; -/** - * GtkFileFilterFunc: - * @info: a #GFileInfo - * @data: (closure): user data passed to gtk_file_filter_add_custom() - * - * The type of function that is used with custom filters, see - * gtk_file_filter_add_custom(). - * - * Returns: %TRUE if the file should be displayed - */ -typedef gboolean (*GtkFileFilterFunc) (GFileInfo *info, - gpointer data); - GDK_AVAILABLE_IN_ALL GType gtk_file_filter_get_type (void) G_GNUC_CONST; @@ -84,12 +71,6 @@ void gtk_file_filter_add_pattern (GtkFileFilter *filter, const gchar *pattern); GDK_AVAILABLE_IN_ALL void gtk_file_filter_add_pixbuf_formats (GtkFileFilter *filter); -GDK_AVAILABLE_IN_ALL -void gtk_file_filter_add_custom (GtkFileFilter *filter, - GtkFileFilterFlags needed, - GtkFileFilterFunc func, - gpointer data, - GDestroyNotify notify); GDK_AVAILABLE_IN_ALL GtkFileFilterFlags gtk_file_filter_get_needed (GtkFileFilter *filter); diff --git a/tests/testfilechooser.c b/tests/testfilechooser.c index 4ff2c8ca96..d3378d472a 100644 --- a/tests/testfilechooser.c +++ b/tests/testfilechooser.c @@ -118,21 +118,6 @@ response_cb (GtkDialog *dialog, g_main_context_wakeup (NULL); } -static gboolean -no_backup_files_filter (GFileInfo *info, - gpointer data) -{ - const char *display_name; - gsize len; - - display_name = g_file_info_get_display_name (info); - len = strlen (display_name); - if (len > 0 && display_name[len - 1] == '~') - return 0; - else - return 1; -} - static void filter_changed (GtkFileChooserDialog *dialog, gpointer data) @@ -399,14 +384,6 @@ main (int argc, char **argv) gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter); g_object_unref (filter); - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, "No backup files"); - gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_DISPLAY_NAME, - no_backup_files_filter, NULL, NULL); - gtk_file_filter_add_mime_type (filter, "image/png"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); - g_object_unref (filter); - filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "Starts with D"); gtk_file_filter_add_pattern (filter, "D*"); -- 2.30.2